package com.common.api;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 通用文件
 */
public interface CommonFileApi {
    /**
     * 上传多个文件
     *
     * @param files
     * @param modelName  所属模块 如:zXContract,projectApplyInfo等,一个模块写统一的名称就行
     * @param businessId 正在操作表的主键id,可以为空
     * @return 文件名和文件id的map集合
     * @throws Exception
     */
    public List uploadFiles(List<MultipartFile> files, String modelName, String businessId) throws Exception;


    /***
     *  上传文件
     * @param file 文件
     * @param modelName  所属模块 所属模块 如:zXContract,projectApplyInfo等,一个模块写统一的名称就行
     * @param businessId  正在操作表的主键id,可以为空
     * @return 文件id
     * @throws Exception
     */
    public String uploadFile(MultipartFile file, String modelName, String businessId) throws Exception;

    /**
     * 下载文件
     *
     * @param fileId   文件id
     * @param response
     * @throws Exception
     */
    public void download(String fileId, HttpServletResponse response) throws Exception;


    /**
     * 删除文件
     *
     * @param fileId 文件id
     * @return
     */
    public Boolean delFile(String fileId);


    /**
     * 获取文件名
     *
     * @param fileId 文件id
     * @return
     */
    public String getFileName(String fileId);


    /**
     * 获取导出可选属性
     *
     * @param exportType
     * @param proClass
     * @return
     */
    public List<Map<String,String>> getExportStr(String exportType, String proClass);
}
